#include <cstdio>
#include <cmath>
#include <string>
#include <iostream>

#define MAX_SIZE 10000

using namespace std;

int powed[MAX_SIZE];

void calc_powed() {
	for (int i = 0; i < 15; ++i) {
		powed[i] = pow(2, i);
	}
}

string to_num(int n, bool first) {
	if (n == 0) {
		return "";
	} else if (n == 1 && first) {
		return "2(0)";
	} else if (n == 1) {
		return "0";
	} else if (n == 2) {
		return "2";
	} else {
		for (int i = 14; i >= 1; --i) {
			if (n == powed[i]) {
				return "2(" + to_num(i, false) + ")";
			} else if (n > powed[i]) {
				if (i == 1) {
					return "2+" + to_num(n-powed[i], true);
				}
				return "2(" + to_num(i, false) + ")+" + to_num(n-powed[i], true);
			}
		}
	}
	return "";
}

int main() {
	int n;
	scanf("%d", &n);
	int now = 0;
	int data[MAX_SIZE];
	int count = 0;
	calc_powed();

	cout << to_num(n, true) << endl;

	return 0;
}
